using PhraseCorrector.Common;
using System;
using System.Collections.Generic;
using System.Text;

namespace PhraseCorrector.DirectTanslate
{
    internal class DicsUtilities
    {

        // ///////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// 格式化ECDics字典行。
        /// </summary>
        /// <param name="keyval">包含键和值的字符串数组。</param>
        /// <returns>格式化后的字符串数组，如果不符合条件则返回空数组。</returns>
        public static string[] FormatECDicsLine(string[] keyval)
        {
            // 当数组长度为2且第二个元素是中文时，进行格式化处理
            return (keyval.Length == 2 && Utilities.IsChineseBegin(keyval[1]))
                        ? FormatECDicsElems(keyval)
                        : new string[0];
        }

        // ///////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// 格式化ECDics字典的元素。
        /// </summary>
        /// <param name="keyval">包含键和值的字符串数组。</param>
        /// <returns>格式化后的字符串数组。</returns>
        private static string[] FormatECDicsElems(string[] keyval)
        {
            // 调整keyval的格式
            FormatECDicskeyval(ref keyval);
            return keyval;
        }

        // ///////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// 格式化ECDics字典的键和值。
        /// </summaryaz>
        /// <param name="keyval">包含键和值的字符串数组的引用。</param>
        private static void FormatECDicskeyval(ref string[] keyval)
        {
            // 移除值中的空格
            keyval[1] = keyval[1].Replace(" ", "");
            // 将键中的下划线替换为空格
            keyval[0] = keyval[0].Replace("_", " ");
        }
    }
}
